#ifndef UC_BRBCTRAV_H
#define UC_BRBCTRAV_H 1

#include "zadesk.h"
#include "zrxobject.h"
#include "zrxboiler.h"
#include "ucbrgbl.h"
#include "ucbrtrav.h"


// forward class declarations
class UcBrBrep;
class UcBrComplex;


class DllImpExp UcBrBrepComplexTraverser : public UcBrTraverser
{
public:
    UCRX_DECLARE_MEMBERS(UcBrBrepComplexTraverser);
    UcBrBrepComplexTraverser();
    UcBrBrepComplexTraverser(const UcBrBrepComplexTraverser& src);
    ~UcBrBrepComplexTraverser();

    // Assignment operator
    UcBrBrepComplexTraverser& operator =(const UcBrBrepComplexTraverser& src);

    // Queries & Initialisers
    UcBr::ErrorStatus   setBrepAndComplex(const UcBrComplex& complex);
    UcBr::ErrorStatus   setBrep         (const UcBrBrep& brep);
    UcBr::ErrorStatus   getBrep         (UcBrBrep& brep) const;
    UcBr::ErrorStatus   setComplex      (const UcBrComplex& complex);
    UcBr::ErrorStatus   getComplex      (UcBrComplex& complex) const;
};


#endif

